package com.huangyi.commoncore.utils;

import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;

/**
 * Bean属性拷贝工具类
 */
public class BeanCopyUtil extends BeanUtils {



    /**
     * 集合数据的拷⻉
     * @param sources 数据源类
     * @param target ⽬标类::new(eg: UserVO::new)
     * @return 拷⻉结果
     * @param <S> 源⽬标类型
     * @param <T> ⽬标对象类型
     */
    public static <S,T> List<T> copyListProperties(List<S> sources, Supplier<T> target){
        List<T> list = new ArrayList<>();
        for (S source : sources) {
            T t = target.get();
            copyProperties(source, t);
            list.add(t);
        }
        return list;
    }
}
